package com.fast.alden.data.model;

/**
 * 通用树形结构接口
 */
public interface ITreeNode {
    /**
     * 获取ID
     */
    Long getId();

    /**
     * 设置ID
     */
    void setId(Long id);

    /**
     * ID路径分隔符
     */
    String ID_PATH_SEPARATOR = "/";

    /**
     * 获取父级ID
     */
    Long getParentId();

    /**
     * 设置父级ID
     */
    void setParentId(Long parentId);

    /**
     * 获取根ID，最顶级节点根ID是自身
     */
    Long getRootId();

    /**
     * 设置根ID，最顶级节点根ID是自身
     */
    void setRootId(Long rootId);

    /**
     * 获取ID路径
     * 格式为： {ITreeNode.ID_PATH_SEPERATOR}{ID1}{ITreeNode.ID_PATH_SEPERATOR}{ID2}...
     * 举例1：_1_2_104_106
     */
    String getIdPath();

    /**
     * 设置ID路径
     */
    void setIdPath(String idPath);
}
